package com.neusoft.yiyang.care.service;

import com.neusoft.yiyang.common.entity.care.CustomerCareItem;
import com.neusoft.yiyang.common.enums.ExecutionStatus;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

public interface CustomerCareItemService {

    // 查询客户已购护理项目
    List<CustomerCareItem> getValidCareItemsByCustomerId(Integer customerId);

    // 添加客户已购护理项目
    void addCustomerCareItem(CustomerCareItem customerCareItem);

    // 修改客户已购护理项目
    void updateCustomerCareItem(CustomerCareItem customerCareItem);

    // 删除客户已购护理项目
    void deleteCustomerCareItem(Integer customerCareItemId);

    // 根据护理级别为客户添加所有关联的护理项目
    void addCareItemsByCareLevel(Integer customerId, Integer careLevelId);

    // 完成护理记录并更新使用次数
    @Transactional
    void completeCareRecordWithUsageUpdate(
            Integer customerId, Integer careItemId, Integer caretakerId,
            Integer quantity, String feedback, ExecutionStatus status,
            MultipartFile file
    );

}
